const express = require("express");
const router = express.Router();

const pathmanageListModule = require("../../../api/role/get_pathmanage_list");
const listModule = require("../../../api/role/list");
const infoModule = require("../../../api/role/info");
const updateModule = require("../../../api/role/update");
const removeModule = require("../../../api/role/remove");
const addModule = require("../../../api/role/add");
const getMenuListModule = require("../../../api/role/get_menu_list");
const addMenusAuthModule = require("../../../api/role/add_menus_auth");
const addPathAuthModule = require("../../../api/role/add_path_auth");
const addAllPathAuthModule = require("../../../api/role/add_all_path_auth");
const removeAllMenusAuthModule = require("../../../api/role/remove_all_menus_auth");
const removePathAuthModule = require("../../../api/role/remove_path_auth");

// 修改角色
router.post("/update", (req, res) => {
  updateModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});

// 添加角色
router.post("/add", (req, res) => {
  addModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});

// 角色列表
router.get("/list", (req, res) => {
  listModule(req.query)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});

// 角色信息
router.get("/info", (req, res) => {
  infoModule(req.query)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 删除角色
router.post("/remove", (req, res) => {
  removeModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 获取接口权限列表
router.get("/pathmanageList", (req, res) => {
  userExistModule({ id: user })
    .then(({ userInfo }) => {
      let { role } = userInfo;
      return pathmanageListModule({ role });
    })
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 获取管理系统菜单列表
router.get("/menusList", (req, res) => {
  let user = req.$user;
  userExistModule({ id: user })
    .then(({ userInfo }) => {
      let { role } = userInfo;
      return getMenuListModule({ id: role });
    })
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 添加菜单权限(所有)
router.post("/addAllMenusAuth", (req, res) => {
  addAllMenusAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 添加菜单权限（单个）
router.post("/addMenusAuth", (req, res) => {
  addMenusAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 删除菜单权限（单个）
router.post("/removeMenusAuth", (req, res) => {
  removeMenusAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 删除菜单权限（所有）
router.post("/removeAllMenusAuth", (req, res) => {
  removeAllMenusAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});

// 添加接口权限（单个）
router.post("/addPathAuth", (req, res) => {
  addPathAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 添加接口权限（所有）
router.post("/addAllPathAuth", (req, res) => {
  addAllPathAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 删除接口权限（单个）
router.post("/removePathAuth", (req, res) => {
  removePathAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});
// 删除接口权限（所有）
router.post("/removeAllPathAuth", (req, res) => {
  removeAllPathAuthModule(req.body)
    .then((result) => {
      res.send(result);
    })
    .catch((error) => {
      res.send(error);
    });
});

module.exports = router;
